package com.fanxing.generics;

/**
 * 泛型类
 */
public class Test01 {

    public static void main(String[] args) {
        // 基本应用
        G1<String,Integer,String> g1 = new G1<>();
        g1.t = "100";
        g1.fun1(666);
        // 泛型参数在使用的时候只能使用引用数据类型，不支持基本数据类型
         G1<String,Long,Integer> g2 = new G1();
        // 可以不去指定泛型，那么操作的类型就是Object
        G1 g3 = new G1();
        g3.k = 100;
        g3.k = "Hello";
        //
        System.out.println(g1.getClass().hashCode());
        System.out.println(g2.getClass().hashCode());
        System.out.println(g3.getClass().hashCode());

    }
}

/**
 * 泛型类
 *
 * @param <T>
 * @param <K>
 * @param <V>
 */
class G1 <T,K,V>{

    T t;
    K k;
    V v;

    public T fun1(K k){
        return null;
    }

}
